class PrestamosController < ApplicationController
#MODULE: Gestión Salarial
#ACTIONS: scaffold

  # GET /prestamos
  # GET /prestamos.xml
  def index
  end

  # GET /prestamos/1
  # GET /prestamos/1.xml
  def show
    @prestamo = Prestamo.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @prestamo }
    end
  end

  # GET /prestamos/new
  # GET /prestamos/new.xml
  def new
    @prestamo = Prestamo.new
    @prestamo.cuotas = 1
    @prestamo.total = 0
    @prestamo.tasa = 0
    @prestamo.usuario_id = params[:usuario_id] if params[:usuario_id]
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @prestamo }
    end
  end

  # GET /prestamos/1/edit
  def edit
    @prestamo = Prestamo.find(params[:id])
  end

  # POST /prestamos
  # POST /prestamos.xml
  def create
    @prestamo = Prestamo.new(params[:prestamo])

    respond_to do |format|
      if @prestamo.save
        flash[:notice] =  'Prestamo creado correctamente.'
        format.html { params[:oper].nil? ? redirect_to(@prestamo) : render(:text => "Ok")}
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @prestamo.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /prestamos/1
  # PUT /prestamos/1.xml
  def update
    @prestamo = Prestamo.find(params[:id])

    respond_to do |format|
      if @prestamo.update_attributes(params[:prestamo])
        flash[:notice] = 'Prestamo actualizado correctamente.'
        format.html { redirect_to(@prestamo) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @prestamo.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /prestamos/1
  # DELETE /prestamos/1.xml
  def destroy
    @prestamo = Prestamo.find(params[:id])
    @prestamo.destroy

    respond_to do |format|
      format.html { redirect_to(prestamos_url) }
      format.xml  { head :ok }
    end
  end

  def datos #IGNORE
    #Realizar consulta
    registros, count = find_by_params(params, :class => Prestamo, :includes => [:usuario], :tipo_join => :joins)
    # Construct a hash from the ActiveRecord result
    return_data = Hash.new()
    return_data[:page] = params[:page]
    return_data[:total] = (count.to_f / params[:rows].to_i).ceil
    return_data[:records] = count

    return_data[:rows] = registros.collect{|u| {:id=>u.id,
        :cell=>[
          u.fecha,u.usuario.try(:nombre),u.motivo, u.cuotas,u.total,"#{u.tasa}%"
        ]}}

    # Convert the hash to a json object
    render :text=>return_data.to_json, :layout=>false
  end

  def cambiar_cuota #DESC: Cambiar el valor de una cuota.
    #Buscar primera cuota a cambiar
    unless params[:buscar][:cantidad].empty?
      movs = Movimiento.find(:all, :conditions => ["prestamo_id = ? AND id >= ?",params[:buscar][:prestamo_id], params[:buscar][:cuota_id]])
      meses = params[:buscar][:cantidad].to_i

      #cambiar cada mes
      movs.each do |mov|
        mov.fecha = meses.month.since(mov.fecha) 
        mov.save!
      end
    end
    redirect_to  url_for(:action => :show, :id => params[:buscar][:prestamo_id])
  end


end
